package com.zsyh.jiujiu;

import java.util.List;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.ResponseBody;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.Query;

/**
 * @ProjectName: livvehelp
 * @Package: com.zsyh.lsb.ui
 * @ClassName:
 * @Description: java类作用描述
 * @Author: zsyh
 * @CreateDate: 2020/9/7 11:59
 * @UpdateUser: liangwanbo
 * @UpdateDate: 2020/9/7 11:59
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public interface Api {

    /**
     * 分类
     */
    @POST("phone/jjyh/goodsclass/getGoodsClass")
    Observable<ResponseBody> getGoodsClass(@Query("pid") String pid);

    /**
     * 注册
     */
    @POST("phone/jjyh/user/register")
    Observable<ResponseBody> register(@Query("phone") String phone, @Query("password") String password);

    /**
     * 获取验证码
     */
    @POST("phone/jjyh/user/sendTextMsg")
    Observable<ResponseBody> sendTextMsg(@Query("phone") String phone);

    /**
     * 登录
     */
    @POST("phone/jjyh/user/login")
    Observable<ResponseBody> login(@Query("phone") String phone, @Query("password") String password);

    /**
     * 轮播
     */
    @POST("phone/jjyh/banner/getBanner")
    Observable<ResponseBody> getBanner();

    /**
     * 头条
     */
    @POST("phone/jjyh/goodsrelease/getHeadlines")
    Observable<ResponseBody> getHeadlines();

    /**
     * 商品列表
     */
    @POST("phone/jjyh/goodsrelease/getGoodsList")
    Observable<ResponseBody> getGoodsList(@Query("pageNumber") String pageNumber,//页数
                                          @Query("pageSize") String pageSize,//	每页条数
                                          @Query("typeId") String typeId,//分类一级id
                                          @Query("cityId") String cityId,//城市id
                                          @Query("userGroup") String userGroup,//企业清库时（userGruop=企业）其余不传
                                          @Query("isNew") String isNew,//换限制时（isNew=闲置）其余不传
                                          @Query("startPrice") String startPrice,//价格区间 开始
                                          @Query("endPrice") String endPrice,//价格区间 结束
                                          @Query("name") String name,//搜索关键词
                                          @Query("userType") String userType,//用户等级 传数字 1注册用户 2包月用户 3包年用户
                                          @Query("classType") String classType,//换产品 classType=产品 换服务 classType=服务
                                          @Query("newType") String newType,//新旧程度 全新，九成新，八成新，七成新，七成新以下
                                          @Query("lat") String lat,//	纬度 必传
                                          @Query("lon") String lon,//经度 必传
                                          @Query("sort") String sort);//	价格排序 1价格升序 2价格降序


    /**
     * 地址
     */
    @POST("phone/jjyh/goodsrelease/getAreaByPid")
    Observable<ResponseBody> getAreaByPid(@Query("pid") String pid);

    /**
     * 商品详情
     */
    @POST("phone/jjyh/goodsrelease/getGoodsById")
    Observable<ResponseBody> getGoodsById(@Query("id") String id,
                                          @Query("lat") String lat,
                                          @Query("lon") String lon);

    /**
     * 加入购物车
     */
    @POST("phone/jjyh/goodsrelease/saveCar")
    Observable<ResponseBody> saveCar(@Query("goodsId") String goodsId, @Query("userId") String userId);

    /**
     * 我的购物车
     */
    @POST("phone/jjyh/goodsrelease/getCarList")
    Observable<ResponseBody> getGoodsById(@Query("userId") String userId);

    /**
     * 修改购物车数量
     */
    @POST("phone/jjyh/goodsrelease/updateCar")
    Observable<ResponseBody> updateCar(@Query("id") String id, @Query("num") String num);

    /**
     * 删除购物车
     */
    @POST("phone/jjyh/goodsrelease/deleteCar")
    Observable<ResponseBody> deleteCar(@Query("ids") String ids);

    /**
     * 我的商品
     */
    @POST("phone/jjyh/goodsrelease/getMyGoods")
    Observable<ResponseBody> getMyGoods(@Query("userId") String userId, @Query("status") String status);

    /**
     * 添加地址
     */
    @POST("phone/jjyh/user/saveAddress")
    Observable<ResponseBody> saveAddress(@Query("userId") String userId,
                                         @Query("userName") String userName,
                                         @Query("phone") String phone,
                                         @Query("pro") String pro,
                                         @Query("city") String city,
                                         @Query("area") String area,
                                         @Query("proName") String proName,
                                         @Query("cityName") String cityName,
                                         @Query("areaName") String areaName,
                                         @Query("desc") String desc,
                                         @Query("isDefault") String isDefault);

    /**
     * 我的地址
     */
    @POST("phone/jjyh/user/selectAddress")
    Observable<ResponseBody> selectAddress(@Query("userId") String userId);

    /**
     * 修改地址
     */
    @POST("phone/jjyh/user/updateAddress")
    Observable<ResponseBody> updateAddress(@Query("id") String id,
                                           @Query("userId") String userId,
                                           @Query("userName") String userName,
                                           @Query("phone") String phone,
                                           @Query("pro") String pro,
                                           @Query("city") String city,
                                           @Query("area") String area,
                                           @Query("proName") String proName,
                                           @Query("cityName") String cityName,
                                           @Query("areaName") String areaName,
                                           @Query("desc") String desc,
                                           @Query("isDefault") String isDefault);


    /**
     * 获取more恩地址
     */
    @POST("phone/jjyh/user/getDefaultAddress")
    Observable<ResponseBody> getDefaultAddress(@Query("userId") String userId);

    /**
     * 创建的订单
     */
    @POST("phone/jjyh/order/saveCarOrder")
    Observable<ResponseBody> saveCarOrder(@Query("userId") String userId,
                                          @Query("otherUserId") String otherUserId,
                                          @Query("username") String username,
                                          @Query("phone") String phone,
                                          @Query("address") String address,
                                          @Query("goodsId") String goodsId,
                                          @Query("num") String num,
                                          @Query("otherGoodsIds") String otherGoodsIds,
                                          @Query("otherNums") String otherNums,
                                          @Query("carIds") String carIds);

    /**
     * 发布产品
     */
    @POST("phone/jjyh/goodsrelease/saveGoods")
    Observable<ResponseBody> saveGoods(@Query("userId") String userId,
                                       @Query("userType") String userType,
                                       @Query("goodsTitle") String goodsTitle,
                                       @Query("goodsDesc") String goodsDesc,
                                       @Query("goodsPic") String goodsPic,
                                       @Query("isNewGoods") String isNewGoods,
                                       @Query("goodsClass") String goodsClass,
                                       @Query("goodsClassTwo") String goodsClassTwo,
                                       @Query("goodsClassThree") String goodsClassThree,
                                       @Query("beginCount") String beginCount,
                                       @Query("stockCount") String stockCount,
                                       @Query("shelfLife") String shelfLife,
                                       @Query("produntDate") String produntDate,
                                       @Query("goodsUnit") String goodsUnit,
                                       @Query("goodsPrice") String goodsPrice,
                                       @Query("releaseProv") String releaseProv,
                                       @Query("releaseProvname") String releaseProvname,
                                       @Query("releaseCity") String releaseCity,
                                       @Query("releaseCityname") String releaseCityname,
                                       @Query("currentAddress") String currentAddress,
                                       @Query("exchangeClass") String exchangeClass,
                                       @Query("exchangeGoods") String exchangeGoods,
                                       @Query("lat") String lat,
                                       @Query("lon") String lon);


    /**
     * 获取单位
     */
    @POST("phone/jjyh/goodsrelease/getGoodsUnit")
    Observable<ResponseBody> getGoodsUnit();

    /**
     * 上传图片
     */
    @Multipart
    @POST("common/uploads")
    Observable<ResponseBody> upload(@Part List<MultipartBody.Part> partList);

    /**
     * 获取订单消息
     */
    @POST("phone/jjyh/massage/getOrderMassageList")
    Observable<ResponseBody> getOrderMassageList(@Query("userId") String userId);

    /**
     * 系统消息
     */
    @POST("phone/jjyh/massage/getSysMassageList")
    Observable<ResponseBody> getSysMassageList();

    /**
     * 获取用户信息
     */
    @POST("phone/jjyh/user/getUserById")
    Observable<ResponseBody> getUserById(@Query("userId") String userId);

    /**
     * 修改信息
     */
    @POST("phone/jjyh/user/updateUser")
    Observable<ResponseBody> updateUser(@Query("userId") String userId,
                                        @Query("headImg") String headImg,
                                        @Query("nickname") String nickname,
                                        @Query("userName") String userName,
                                        @Query("userIdcard") String userIdcard,
                                        @Query("userSex") String userSex,
                                        @Query("qqnum") String qqnum,
                                        @Query("birthday") String birthday,
                                        @Query("province") String province,
                                        @Query("city") String city);


    /**
     * 修改密码
     */
    @POST("phone/jjyh/user/updatePassword")
    Observable<ResponseBody> updatePassword(@Query("userId") String userId,
                                            @Query("oldPassword") String oldPassword,
                                            @Query("newPassword") String newPassword);

    /**
     * 诚信认证
     */
    @POST("phone/jjyh/user/userHonesty")
    Observable<ResponseBody> userHonesty(@Query("userId") String userId,
                                         @Query("idcardImage") String idcardImage,
                                         @Query("idcardBackimages") String idcardBackimages,
                                         @Query("idcardHold") String idcardHold);

    /**
     * 会员等级
     */
    @POST("phone/jjyh/user/getUserLevel")
    Observable<ResponseBody> userHonesty(@Query("userId") String userId,
                                         @Query("id") String id);

    /**
     * 签到
     * @param userId
     * @return
     */
    @POST("phone/jjyh/user/userSign")
    Observable<ResponseBody> userSign(@Query("userId") String userId);

    /**
     * 获取指南
     */
    @POST("phone/jjyh/user/getOperation")
    Observable<ResponseBody> getOperation();

    /**
     * 修改商品
     */
    @POST("phone/jjyh/goodsrelease/updateGoods")
    Observable<ResponseBody> updateGoods(@Query("id") String id,@Query("userId") String userId,
                                       @Query("userType") String userType,
                                       @Query("goodsTitle") String goodsTitle,
                                       @Query("goodsDesc") String goodsDesc,
                                       @Query("goodsPic") String goodsPic,
                                       @Query("isNewGoods") String isNewGoods,
                                       @Query("goodsClass") String goodsClass,
                                       @Query("goodsClassTwo") String goodsClassTwo,
                                       @Query("goodsClassThree") String goodsClassThree,
                                       @Query("beginCount") String beginCount,
                                       @Query("stockCount") String stockCount,
                                       @Query("shelfLife") String shelfLife,
                                       @Query("produntDate") String produntDate,
                                       @Query("goodsUnit") String goodsUnit,
                                       @Query("goodsPrice") String goodsPrice,
                                       @Query("releaseProv") String releaseProv,
                                       @Query("releaseProvname") String releaseProvname,
                                       @Query("releaseCity") String releaseCity,
                                       @Query("releaseCityname") String releaseCityname,
                                       @Query("currentAddress") String currentAddress,
                                       @Query("exchangeClass") String exchangeClass,
                                       @Query("exchangeGoods") String exchangeGoods,
                                       @Query("lat") String lat,
                                       @Query("lon") String lon);


    /**
     * 上下家
     */
    @POST("phone/jjyh/goodsrelease/updateGoodsStatus")
    Observable<ResponseBody> updateGoodsStatus(@Query("goodsId") String goodsId,@Query("status") String status);

    /**
     * 删除
     */
    @POST("phone/jjyh/goodsrelease/delGoods")
    Observable<ResponseBody> delGoods(@Query("goodsId") String goodsId);

    /**
     * 订单列表
     */
    @POST("phone/jjyh/order/getOrderList")
    Observable<ResponseBody> getOrderList(@Query("pageNumber") String pageNumber,
                                          @Query("pageSize") String pageSize    ,
                                          @Query("userId") String userId,
                                          @Query("type") String type);

    /**
     * 卻惹嗯訂單
     */
    @POST("phone/jjyh/order/confirmOrder")
    Observable<ResponseBody> confirmOrder(@Query("userId") String userId,
                                          @Query("orderId") String orderId,
                                          @Query("money") String money,
                                          @Query("username") String username,
                                          @Query("phone") String phone,
                                          @Query("address") String address);

    /**
     * 删除订单
     */
    @POST("phone/jjyh/order/cancelOrder")
    Observable<ResponseBody> delOrder(@Query("userId") String userId,
                                          @Query("orderId") String orderId);

    /**
     * 提交物流
     */
    @POST("phone/jjyh/order/saveCourier")
    Observable<ResponseBody> saveCourier(@Query("userId") String userId,
                                      @Query("orderId") String orderId,
                                         @Query("trackno") String trackno,
                                         @Query("trackname") String trackname,
                                         @Query("tracknameCode") String tracknameCode);


    /**
     * gongsi
     */
    @POST("phone/jjyh/order/getCourierServices")
    Observable<ResponseBody> getCourierServices();

    /**
     * 支付保证金
     */
    @POST("phone/jjyh/wxPay/wxPay")
    Observable<ResponseBody> wxPay(@Query("orderId") String orderId,@Query("userId") String userId);

    /**
     * 物流
     */
    @POST("index")
    Observable<ResponseBody> wuliu(@Query("com") String com,@Query("no") String 	no,@Query("key") String 	key);

    /**
     * 订单详情
     */
    @POST("phone/jjyh/order/getOrderById")
    Observable<ResponseBody> getOrderById(@Query("userId") String userId,@Query("id") String id);

    /**
     * 支付vip
     */
    @POST("phone/jjyh/wxPay/wxPayVip")
    Observable<ResponseBody> wxPayVip(@Query("id") String orderId,@Query("userId") String userId);

    /**
     * 更新
     */
    @POST("phone/jjyh/user/getVersion")
    Observable<ResponseBody> getVersion(@Query("id") String id);

    /**
     * 拨打电话次数
     */
    @POST("phone/jjyh/user/updateUserViewTimes")
    Observable<ResponseBody> updateUserViewTimes(@Query("userId") String userId);

    /**
     * 找回密码
     */
    @POST("phone/jjyh/user/findPassword")
    Observable<ResponseBody> findPassword(@Query("phone") String phone,
                                          @Query("password") String password  );

}

